﻿using CI.Organism;

namespace CI.Interfaces
{
    /// <summary>Simulation environment restrictions</summary>
    public interface ISimulationRestrictions
    {
        /// <summary>
        /// Restrictions to be applied in the simulation, Simulation rules to be applied in the then hosting environment
        /// </summary>
        void RestrictionChecking(IHostingEnvironment hostingEnvironment);

        /// <summary>
        /// checking the fitness of the organism, will terminate it if not
        /// </summary>
        /// <param name="organism">the organism to check</param>
        void FitnessChecking(IOrganism organism);
    }
}